class UsersController < ApplicationController
 before_action :logged_in_user, only: [:index,:edit, :update, :destroy,:following, :followers]

  before_action :correct_user, only: [:edit, :update]
  before_action :admin_user,  only: :destroy


  
  
  def index
    @users = User.paginate(page: params[:page])
  end
  
  def new
    @user = User.new
  end


  def show
       @user = User.find(params[:id])
       @microposts = @user.microposts.paginate(page: params[:page])
  end
  
  
  def destroy

     User.find(params[:id]).destroy

     flash[:success] = "User deleted"

     redirect_to users_url

  end
  
  
  
  
  def create
          @user = User.new(user_params)
         if @user.save
           @user.send_activation_email
           flash[:info] = "Please check your email to activate your account."
           redirect_to root_url
        # 加了下面这一句
          # log_in @user
          # flash[:success] = "Welcome to the Sample app" 
          # redirect_to @user
         else
           render 'new'
         end
  end
  
   def edit
      @user = User.find(params[:id])
   end
   
   
   def update
     @user = User.find(params[:id])
     if @user.update(user_params)
           # 处理更新成功的情况
          flash[:success] = "Profile updated"
          redirect_to @user
     else
         render 'edit'
     end
   end  
   
   def following
        @title = "Following"
        @user  = User.find(params[:id])
        @users = @user.following.paginate(page: params[:page])
        render 'show_follow'
   end
  
  
  def followers
      @title = "Followers"
      @user = User.find(params[:id])
      @users = @user.followers.paginate(page: params[:page]) 
      render 'show_follow'
  end
  
  private


    def user_params
            params.require(:user).permit(:name, :email, :password,:password_confirmation)
    end
    
    #前置过滤器
    # def logged_in_user
    #       unless logged_in?
    #           flash[:danger] = "Please log in."
    #           redirect_to login_url
    #       end
    # end
    
     def correct_user
           @user = User.find(params[:id])
           redirect_to(root_url) unless current_user?(@user)
     end
     
     
     def admin_user

           redirect_to(root_url) unless current_user.admin?
  
     end
  
  
end